package network.message;

import java.io.Serializable;

/**
 * @author JFIELD
 */
public interface IMessage extends Serializable
{
	public enum MessageType
	{
		// message				to server argument						to client argument
		BID_INFO, 				// xxx									// winning bid (Integer)
		TRUMP_INFO, 			// xxx									// new trump (Suit)
		PLAYER_INFO, 			// xxx									// Info about a certain player (PlayerState)
		BID_MESSAGE, 			// this players bid (Integer)			// valid bids (List<Integer>)
		SUIT_MESSAGE, 			// this players suit selection (Suit)	// xxx
		PLAY_MESSAGE, 			// this players card played (Card)		// valid cards to play (List<Card>)
		TRADE_MESSAGE, 			// cards to trade (List<Card>)			// valid cards to trade (List<Card>)
		DEAL_MESSAGE, 			// xxx									// xxx
		ROUND_INFO,				// xxx									// round summary info (RoundSummary)
		SIT_MESSAGE,			// the player sitting (IPlayer)			// xxx
		JOIN_REQUEST			// no arguements						// player position
	}
	
	public MessageType getMessageType();
	
	public Object getArguements();
	
	public void print();
}